#include "Camera.h"

namespace Hope {

    Camera::Camera()
    {

    }

    Camera::Camera(float fov, float near, float far)
    {

    }

    Camera::~Camera()
    {

    }

    void Camera::SetNearClip(float nearClip)
    {
        m_near = glm::max(nearClip, 0.f);
        m_frustumDirty = true;
    }

    void Camera::SetFarClip(float farClip)
    {
        m_far = glm::max(farClip, 0.f);
        m_frustumDirty = true;
    }

    void Camera::SetFOV(float fov)
    {
        m_fov = fov;
        m_frustumDirty = true;
    }

    const Frustum & Camera::GetFrustum()
    {
        if (m_frustumDirty)
        {
            m_frustum.SetFrustum(m_fov, m_aspectRatio, m_near, m_far, GetWorldTransform());
            m_frustumDirty = false;
        }

        return m_frustum;
    }

}